Simplifying the construction of source code transformations via automatic syntactic restructurings
نویسندگان
چکیده
J Softw Evol Proc 2016; 1–18 Abstract A set of restructurings to systematically normalize selective syntax in C++ is presented. The objective is to convert variations in syntax of specific portions of code into a single form to simplify the construction of large, complex program transformation rules. Current approaches to constructing transformations require developers to account for a large number of syntactic cases, many of which are syntactically different but semantically equivalent. The work identifies classes of such syntactic variations and presents normalizing restructurings to simplify each variation to a single, consistent syntactic form. The normalizing restructurings for C++ are presented and applied to 2 open source systems for evaluation. The evaluation uses the system's test cases to validate that the normalizing restructurings do not affect the systems' tested behavior. In addition, a set of example transformations that benefit from the prior application of normalizing restructurings are presented along with a small survey to assess the effect of the readability of the resultant code.
منابع مشابه
Design and Implementation of Tree-transformations in Ensemble Ucb Cs Honors Program Project Report
Tree transformations ooer a convenient method to describe various manipulations that are commonly performed by compilers and language-based editors. Many of the compiler stages, such as semantic analysis, code optimization, and code generation Pelegri-Llopart 1988], are frequently speciied as a sequence of tree transformations that transform parse tree into output representation (e.g. machine l...
متن کاملAn Infrastructure to Support Meta-Differencing and Refactoring of Source Code
The proposed research aims to construct an underlying infrastructure to support (semi) automated construction of refactorings and system wide transformation via a fine grained syntax level differencing approach. We term this differencing approach meta-differencing as it has additional knowledge of the types of entities being differenced. The general approach is built on top of an XML representa...
متن کاملSyntactic Abstraction in Scheme
Naive program transformations can have surprising e ects due to the interaction between introduced identi er references and previously existing identi er bindings, or between introduced bindings and previously existing references. These interactions can result in the inadvertent binding, or capturing, of identi ers. A further complication results from the fact that the transformed program may h...
متن کاملبرچسبزنی خودکار نقشهای معنایی در جملات فارسی به کمک درختهای وابستگی
Automatic identification of words with semantic roles (such as Agent, Patient, Source, etc.) in sentences and attaching correct semantic roles to them, may lead to improvement in many natural language processing tasks including information extraction, question answering, text summarization and machine translation. Semantic role labeling systems usually take advantage of syntactic parsing and th...
متن کاملAssessing the Maintainability Benefits of Design Restructuring Using Dependency Analysis
Software developers and project managers often have to assess the quality of software design. A commonly adopted hypothesis is that a good design should cost less to maintain than a poor design. In this paper, we propose a model for quantifying the quality of a design from a maintainability perspective. Based on this model, we propose a novel strategy for predicting the “Return on Investment” (...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Journal of Software: Evolution and Process
دوره 29 شماره
صفحات -
تاریخ انتشار 2017